package cn.ffcs.base.web;

import java.util.List;

/**
 * 分页类<br/>
 * <table>
 * <tr>
 * <td>负责人/principal:</td>
 * <td colspan="2">liuzhh</td>
 * <tr>
 * <td>修改记录/revision:</td>
 * <td colspan="2"></td>
 * </tr>
 * <tr>
 * <td>日期:</td>
 * <td>修改人:</td>
 * <td>修改说明:</td>
 * </tr>
 * <tr>
 * <td></td>
 * <td></td>
 * <td></td>
 * </tr>
 * </table>
 * @author liuzhh
 * @version $Id$
 */
public class PageControl
{
    
    @SuppressWarnings("unused")
    private static final int PAGE_SIZE_=10;

    
    /** 是否使用分页 **/
    private boolean usePage;
    
    /** 记录开始 **/
    private int start;
    
    /** 记录结束 **/
    private int end;

    /** 页面数据大小 **/
    private int pageSize;

    /** 当前页码 **/
    private int pageNo;

    /** 前一页 **/
    private int frontPage;

    /** 下一页 **/
    private int nextPage;
    
    /** 是否可使用前页 **/
    private boolean useFrontPage;
    
    /** 是否可使用后页 **/
    private boolean useNextPage;
    
    /** 总数 **/
    private int totalPage;

    /** 数据总条数 **/
    private int total;

    /** 数据结果集 **/
    @SuppressWarnings("unchecked")
    private List results;
    
    /**
     * 构造子
     */
    public PageControl(){  
        this.start=1;
        this.pageNo=1;
        this.pageSize=PAGE_SIZE_;
        this.frontPage=1;
        this.nextPage=2;
        this.useFrontPage=false;
        this.useNextPage=true;
    }
    
    /**
     * 构造子
     * @param total
     * @param pageNo
     * @param pageSize
     */
    public PageControl(int total,int pageNo,int pageSize){
        
        this.total=total;
        this.pageNo=pageNo;
        this.pageSize=pageSize;
        
        start = (pageNo - 1) * pageSize;
        if (pageNo * pageSize > total)
        {
            end = total + 1;
        }
        else
        {
            end = pageNo * pageSize + 1;
        }

        if (total != 0 && total % pageSize == 0)
        {
            totalPage = total / pageSize;
        }
        else
        {
            totalPage = total / pageSize + 1;
        }
    }
    
    /**
     * 构造子_add_pany_090607
     * @param total
     * @param pageNo
     * @param pageSize
     */
    public PageControl(int total,int pageNo,int pageSize,int i){
        
        this.total=total;
        this.pageNo=pageNo;
        this.pageSize=pageSize;
        
        start = (pageNo - 1) * pageSize;
        if (pageNo * pageSize > total)
        {
            end = total + 1;
        }
        else
        {
            end = pageNo * pageSize + 1;
        }

        if (total != 0 && total % pageSize == 0)
        {
            totalPage = total / pageSize;
        }
        else
        {
            totalPage = total / pageSize + 1;
        }
        this.useFrontPage=pageNo==1?false:true;
        this.useNextPage=pageNo==totalPage?false:true;
    }
   
    /**
     * 构造子
     */
    public PageControl(List results,int start,int pageSize,int pageNo,int totalPage,int total){  
        this.usePage=true;
        this.results=results;
        this.start=start;
        this.pageSize=pageSize;
        this.pageNo=pageNo;
        this.totalPage=totalPage;
        this.total=total;  
        this.frontPage=pageNo-1;
        this.nextPage=pageNo+1;
        this.useFrontPage=pageNo==1?false:true;
        this.useNextPage=pageNo==totalPage?false:true;
    }
    
    /**
     * 获取记录开始
     * @return
     */
    public int getStart()
    {
        return start;
    }

    /**
     * 设置记录开始
     * @param start
     */
    public void setStart(int start)
    {
        this.start = start;
    }
    
    /**
     * 获取前一页
     * @return
     */
    public int getFrontPage()
    {
        return frontPage;
    }
    
    /**
     * 设置前一页
     * @param frontPage
     */
    public void setFrontPage(int frontPage)
    {
        this.frontPage = frontPage;
    }
    
    /**
     * 获取下一页
     * @return
     */
    public int getNextPage()
    {
        return nextPage;
    }

    /**
     * 设置下一页
     * @return
     */
    public void setNextPage(int nextPage)
    {
        this.nextPage = nextPage;
    }

    /**
     * 获取是否可使用前页
     * @return
     */
    public boolean isUseFrontPage()
    {
        return useFrontPage;
    }

    /**
     * 设置是否可使用前页
     * @param frontPage
     */
    public void setUseFrontPage(boolean useFrontPage)
    {
        this.useFrontPage = useFrontPage;
    }

    /**
     * 是否可用下页
     * @return
     */
    public boolean isUseNextPage()
    {
        return useNextPage;
    }

    /**
     * 设置可用下页
     * @param frontPage
     */
    public void setUseNextPage(boolean useNextPage)
    {
        this.useNextPage = useNextPage;
    }

    /**
     * 获取页面数据大小
     * @return
     */
    public int getPageSize()
    {
        return pageSize;
    }

    /**
     * 设置页面数据大小
     * @param pageSize
     */
    public void setPageSize(int pageSize)
    {
        this.pageSize = pageSize;
    }
    /**
     * 获取当前页码
     * @return
     */
    public int getPageNo()
    {
        return pageNo;
    }

    /**
     * 设置当前页码
     * @param pageNo
     */
    public void setPageNo(int pageNo)
    {
        this.pageNo = pageNo;
    }

    /**
     * 判断是否分页
     * @param pageNo
     */
    public boolean isUsePage()
    {
        return usePage;
    }

    /**
     * 设置是否分页
     * @param pageNo
     */
    public void setUsePage(boolean usePage)
    {
        this.usePage = usePage;
    }

    /**
     * 获取总数
     * @param pageNo
     */
    public int getTotalPage()
    {
        return totalPage;
    }

    /**
     * 设置总数
     * @param pageNo
     */
    public void setTotalPage(int totalPage)
    {
        this.totalPage = totalPage;
    }

    /**
     * 获取数据总条数
     * @param pageNo
     */
    public int getTotal()
    {
        return total;
    }

    /**
     * 设置数据总条数
     * @param pageNo
     */
    public void setTotal(int total)
    {
        this.total = total;
    }
    
    /**
     * 获取结果集
     * @return
     */
    public List getResults()
    {
        return results;
    }

    /**
     * 设置结果集
     * @param results
     */
    public void setResults(List results)
    {
        this.results = results;
    }
    
    /**
     * 记录结束
     * @return
     */
    public int getEnd()
    {
        return end;
    }
  
    /**
     * 设置记录结束
     * @return
     */
    public void setEnd(int end)
    {
        this.end = end;
    }


}
